This invention relates generally to troubleshooting program code, and more specifically to methods and apparatus for determining whether a program under development outputs or displays character strings that are not translated for users who speak other languages.
In today's international market, computer programs are often sold to consumers in various countries and locales. As a result, the language understood by programmers, and thus the language in which various character string values are expressed in the program, is often not the same as the language understood by the consumers who will be using the program. Therefore, it is useful to have some method to translate the character string values in the program into a variety of languages such that consumers can readily understand and utilize the program despite language barriers. This process of translating character string values in programs is called internationalization.
One method of performing internationalization of character string variables in a program uses message keys and message catalogues. Rather than being hard-coded, character string variables in the program are identified by message keys. These message keys reference a particular localized message catalogue, which contain every character string value used in the program in a specific language. The message catalogues are typically created in a specific country by native speakers. A single program can contain many message catalogues, each corresponding a different consumer language.
In order to insure that every character string value in the program is properly internationalized such that they contain a message key and properly reference a message catalogue, rather than simply being hard-coded, and thus language invariant, the program developer has to painstakingly inspect each and every character string value that may appear in the program code. This inspection method, however, has the disadvantage of being tedious, time consuming, and error prone.
Program internationalization can also be tested by post-localization testing during which localization engineers, who develop the message catalogues, test their translations by running the program and making sure the character string variables are expressed in the appropriate language. As a side effect of this testing, the localization engineers can also detect and report improperly internationalized character strings, character strings that always appear in the program developer's language, to the development team. This method, however, has the disadvantage of coming late in the development cycle, perhaps even after the program has been released into the consumer market.
What is needed is a method of testing internationalization that is less tedious for the program developer and can be performed at any point during the development process.